Skip to content

Add action authority demo walkthrough blog post#172

Merged
amavashev merged 4 commits intomainfrom
claude/cycles-action-authority-demo-OmWiz
Mar 22, 2026
Merged

Add action authority demo walkthrough blog post#172
amavashev merged 4 commits intomainfrom
claude/cycles-action-authority-demo-OmWiz

Conversation

@amavashev
Copy link
Contributor

Summary

Add a comprehensive blog post documenting the action authority demo, which shows how Cycles blocks unauthorized agent actions before execution using runtime budget enforcement.

Changes

  • New blog post: blog/action-authority-demo-support-agent-walkthrough.md
    • Explains a real-world scenario: a support agent handling a billing dispute with four sequential actions
    • Contrasts unguarded execution (all actions run) vs. guarded execution (email blocked by Cycles)
    • Walks through the code diff showing three @cycles decorators and exception handling
    • Details how toolset-level budget provisioning controls action authorization at runtime
    • Clarifies the distinction between static allowlists and dynamic runtime authority
    • Includes setup instructions to run the demo locally
    • Links to related conceptual posts on action control and runtime authority

Key Content

  • Scenario: Support agent (support-bot) processes case #4782 with four steps: read case, log internal note, update CRM, send customer email
  • Core mechanism: The @cycles decorator wraps tool functions and reserves budget before execution; missing budget returns 409 BUDGET_EXCEEDED, raising BudgetExceededError and preventing execution
  • Operational model: Approving/revoking actions = adding/removing budgets; no code changes or redeployment needed
  • Distinction: Explains why runtime authority (per-action decisions) is superior to static allowlists or API key-based access control

Notable Details

  • Includes side-by-side comparison of unguarded vs. guarded execution logs
  • Shows the exact code diff (3 decorators + 1 exception handler)
  • Visualizes the budget hierarchy: tenant → workspace → app → workflow → agent → toolset
  • Demonstrates that the tool implementations remain unchanged; control is purely in the decorator and budget provisioning layer

https://claude.ai/code/session_015zc6uasNhYkXQqTeTRFUMv

claude added 4 commits March 22, 2026 12:53
Follow-up blog post for the cycles-agent-action-authority-demo repo.
Walks through the support agent scenario, shows unguarded vs guarded
output, explains the three-decorator code change, and covers toolset
scoping mechanics. SEO-optimized title and description for action
control search queries.

https://claude.ai/code/session_015zc6uasNhYkXQqTeTRFUMv
- Shorten title to 48 chars for SERP visibility
- Fix CRM tier classification: relabel as write-local, acknowledge
  mutation nuance in prose
- Replace send_customer_email(...) with real argument names
- Show full scope path in bash snippet instead of /.../  shorthand
- Add Content-Type header and unit fields to match actual provision.sh
- Ground allowlist section in the demo scenario instead of abstract
  straw-man arguments
- Make What's Next opening specific (risk-point caps, progressive
  narrowing) instead of generic

https://claude.ai/code/session_015zc6uasNhYkXQqTeTRFUMv
- send_customer_email call uses `to` to match function signature
- Add missing X-Cycles-API-Key header to bash snippet
- Shorten meta description to 158 chars to fit SERP without truncation

https://claude.ai/code/session_015zc6uasNhYkXQqTeTRFUMv
- Align wording with budget-denial mechanism: replace "escalated to
  human for approval" with "not approved for autonomous execution"
- Author: Cycles Team → Albert Mavashev
- Title: add concrete "Blocking a Customer Email Before Execution"
- Move "tools are mocked, action authority is real" to intro
- Remove protocol/SDK links from ending (keep it essay, not docs)

https://claude.ai/code/session_015zc6uasNhYkXQqTeTRFUMv
@amavashev amavashev merged commit 8d2b1f6 into main Mar 22, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants